/**
 * 
 */
package br.edu.unifei.cct720.trabalho07.model.ponto;

import java.awt.Color;
import java.awt.Graphics;

/**
 * Classe utilizada para definir o objeto geometrico de um ponto,
 * atraves de suas coordenada (x, y)
 * 
 * @author Felipe Knappe
 *
 */
public class Ponto {
	
	// Declaracao das variaveis de instancia
	/** Armazena o valor da coordenada x do ponto */
	protected int x;
	
	/** Armazena o valor da coordenada y do ponto */
	protected int y;
	
	/** Armazena o valor RGB da cor do ponto */
	protected Color cor;
	
	/**
	 * Construtor
	 * 
	 * @param x O valor da coordenada x do ponto
	 * @param y O valor da coordenada y do ponto
	 * @param cor O valor da cor do ponto em RGB
	 */
	public Ponto(int x, int y, Color cor) {
		this.x = x;
		this.y = y;
		this.cor = cor;
	}
	
	/**
	 * Metodo responsavel pela plotagem
	 * do ponto
	 * 
	 * @param g O context grafico a ser plotado o ponto
	 */
	public void plota(Graphics g) {
		g.setColor(cor);
		g.drawLine(this.x, this.y, this.x, this.y);
	}

	// Metodos getters e setters
	
	/**
	 * Metodo responsavel por definir o valor da coordenada x
	 * do ponto
	 */
	public int getX() {
		return x;
	}

	/**
	 * Metodo utilizado para definir o valor da coordenada
	 * x do ponto
	 * 
	 * @param x O valor a ser definido como coordenada x
	 */
	public void setX(int x) {
		this.x = x;
	}

	/**
	 * Metodo responsavel por retornar o valor da coordenada
	 * do ponto
	 * 
	 * @return int
	 */
	public int getY() {
		return y;
	}

	/**
	 * Metodo utilizado para definir a coordenada
	 * y do ponto
	 * 
	 * @param y O valor a ser definida como coordenada y
	 */
	public void setY(int y) {
		this.y = y;
	}
	
	/**
	 * Metodo responsavel por retornar o valor
	 * (em RGB) utilizada por este ponto
	 * 
	 * @return Color
	 */
	public Color getCor() {
		return cor;
	}

	/**
	 * Metodo responsavel por definir o valor da cor
	 * (em RGB) do ponto
	 * 
	 * @param cor O valor RBG da ser definida no ponto
	 */
	public void setCor(Color cor) {
		this.cor = cor;
	}
}
